<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>自查检查人员调整</title>
    <link rel="stylesheet" href="/layui/css/layui.css">
    <link rel="stylesheet" href="/css/custom.form.css">
    <style>
        .layui-form-label {
            width: 100px;
        }

        .layui-input-block {
            margin-left: 130px;
        }

        .layui-input layui-unselect {
            cursor: pointer;
        }

        .layui-table {
            width: 96%;
        }

    </style>
</head>
<body>

<div class="layui-fluid">
    <div class="layui-row layui-col-space15">
        <div class="layui-col-md12">
            <div class="layui-card">
                <div class="layui-card-header"></div>
                <div class="layui-card-body">
                    <!--页面内容-->
                    <div class="layui-tab layui-tab-brief">
                        <ul class="layui-tab-title" style="margin-left: 10px">
                            <li class="layui-this">未调整自查检查人员</li>
                            <li>已调整自查检查人员</li>
                        </ul>
                        <div class="layui-tab-content">
                            <!--未调整人员-->
                            <div class="layui-tab-item layui-show">
                                <div class="layui-tab table_div" style="margin-left: 10px">
                                    <div class="layui-tab-content">
                                        <div class="layui-tab-item layui-show">
                                            <form class="layui-form" id="searchForm0">
                                                <div class="layui-input-inline">
                                                    <label for="jcaybh0"></label>
                                                    <input type="text" id="jcaybh0" class="layui-input" autocomplete="off"
                                                           placeholder="请输入案件编号">
                                                </div>
                                                <div class="layui-input-inline">
                                                    <label for="nsrsbh0"></label>
                                                    <input type="text" id="nsrsbh0" class="layui-input" autocomplete="off"
                                                           placeholder="请输入纳税人识别号">
                                                </div>
                                                <div class="layui-input-inline">
                                                    <label for="nsrmc0"></label>
                                                    <input type="text" id="nsrmc0" class="layui-input" autocomplete="off"
                                                           placeholder="请输入纳税人名称">
                                                </div>
                                                <div class="layui-input-inline">
                                                    <label for="tzhks0"></label>
                                                    <select id="tzhks0" class="layui-input"></select>
                                                </div>
                                                <div class="layui-input-inline">
                                                    <label for="ajztmc0"></label>
                                                    <select id="ajztmc0" class="layui-input"></select>
                                                </div>
                                                <div class="layui-input-inline">
                                                    <label for="startTime0"></label>
                                                    <input type="text" readonly class="layui-input" id="startTime0"
                                                           placeholder="立案时间起">
                                                </div>
                                                <div class="layui-input-inline">
                                                    <label for="endTime0"></label>
                                                    <input type="text" readonly class="layui-input" id="endTime0" placeholder="立案时间止">
                                                </div>
                                                <div class="layui-input-inline ">
                                                    <button type="button" class="layui-btn" onclick="searchWtzlary()" id="search0">查询
                                                    </button>
                                                    <button type="button" class="layui-btn" id="resetBtn0">重置</button>
                                                    <button type="button" class="layui-btn" id="exportBtn0">导出</button>
                                                </div>
                                            </form>
                                            <!-- 查询列 -->
                                            <table class="layui-table" id="grdbShowTable" lay-filter="grdbShowTable"></table>
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <!--已调整人员-->
                            <div class="layui-tab-item">
                                <div class="layui-tab table_div" style="margin-left: 10px">
                                    <div class="layui-tab-content">
                                        <div class="layui-tab-item layui-show">
                                            <form class="layui-form" id="searchForm1">
                                                <div class="layui-input-inline">
                                                    <label for="jcajbh1"></label>
                                                    <input type="text" id="jcajbh1" class="layui-input" autocomplete="off"
                                                           placeholder="请输入案件编号">
                                                </div>
                                                <div class="layui-input-inline">
                                                    <label for="nsrsbh1"></label>
                                                    <input type="text" id="nsrsbh1" class="layui-input" autocomplete="off"
                                                           placeholder="请输入纳税人识别号">
                                                </div>
                                                <div class="layui-input-inline">
                                                    <label for="nsrmc1"></label>
                                                    <input type="text" id="nsrmc1" class="layui-input" autocomplete="off"
                                                           placeholder="请输入纳税人名称">
                                                </div>
                                                <div class="layui-input-inline">
                                                    <label for="tzhks1"></label>
                                                    <select id="tzhks1" class="layui-input"></select>
                                                </div>
                                                <div class="layui-input-inline">
                                                    <label for="ajztmc1"></label>
                                                    <select id="ajztmc1" class="layui-input"></select>
                                                </div>
                                                <div class="layui-input-inline">
                                                    <label for="startTime1"></label>
                                                    <input type="text" readonly class="layui-input" id="startTime1"
                                                           placeholder="立案时间起">
                                                </div>
                                                <div class="layui-input-inline">
                                                    <label for="endTime1"></label>
                                                    <input type="text" readonly class="layui-input" id="endTime1" placeholder="立案时间止">
                                                </div>
                                                <div class="layui-input-inline">
                                                    <button type="button" class="layui-btn" onclick="searchYtzlary()" id="search1">查询
                                                    </button>
                                                    <button type="button" class="layui-btn" id="resetBtn1">重置</button>
                                                    <button type="button" class="layui-btn" id="exportBtn1">导出</button>
                                                </div>
                                            </form>
                                            <!-- 查询列 -->
                                            <table class="layui-table" id="grybShowTable" lay-filter="grybShowTable"></table>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                    <!--选择调查人下拉选-->
                    <div id="debugtaxorgDiv" class="demo-transfer" style="display: none">
                        <div class="layui-form">
                            <!-- 主查人 -->
                            <div class="layui-form-item" style="margin-top: 5px">
                                <label class="layui-form-label">选择主查人</label>
                                <div class="layui-input-block">
                                    <div id="zcrSelect" style="width: 80%"></div>  <!-- 这里必须是 div，而不是 select -->
                                </div>
                            </div>
                            <!-- 协查人 -->
                            <div class="layui-form-item" style="margin-top: 40px">
                                <label class="layui-form-label">选择协查人</label>
                                <div class="layui-input-block">
                                    <div id="xcrSelect" style="width: 80%"></div>  <!-- 这里必须是 div，而不是 select -->
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<!--调整按钮-->
<script type="text/html" id="grdbTool">
    <a class="layui-btn layui-btn-xs" lay-event="view">调整</a>
</script>

<script src="/layui/layui.all.js"></script>
<script src="/layui-ext/selectM/selectM.js"></script>
<script src="/js/core.util.js"></script>
<script th:inline="none">
    // 获取token
    var token = CoreUtil.getData("access_token");
    // 地址栏转义token中的#号
    var tokenQuery = token.replace("#", "%23");
    var grdbTableIns;
    var grybTableIns;
    var table = layui.table;
    var form = layui.form;
    var layer = layui.layer;
    var $ = jQuery = layui.jquery;
    var laydate = layui.laydate;
    var upload = layui.upload;
    var element = layui.element;
    var maxlength = 500;
    var debugtaxorg = "";
    var xmSelect = layui.xmSelect;
    var xcrSelect;
    var zcrSelect;
    layui.config({
        base: '/'
    }).extend({
        eleTree: 'layui-ext/eleTree/eleTree',
        xmSelect: 'layui/xm-select' // 这里添加 xmSelect
    }).use(['table', 'layer', 'laydate', 'upload', 'element', 'form', 'xmSelect'], function () {
        // 默认初始化金三科室下拉选
        CoreUtil.sendPost("/workflow/activity/debugtaxorg", null, function (res) {
            if (res.code === 0) {
                let value = res.data; // 接口返回的数据
                let opt = "<option value=''>请选择科室</option>"; // 默认选项
                // 遍历接口返回的数据，生成选项
                for (let i in value) {
                    opt += '<option value="' + value[i].swjgjc + '">' + value[i].swjgjc + '</option>';
                }
                // 将生成的选项插入到 select 元素中
                $("#tzhks0").html(opt);
                $("#tzhks1").html(opt);
                // 渲染 layui 的 select 组件
                form.render('select'); // 注意：必须调用渲染方法以更新 select 组件
            } else {
                // 如果接口返回错误
                layer.msg(res.msg, {icon: 2}); // 提示错误信息
                return false;
            }
        });
        // 默认案件状态下拉选
        CoreUtil.sendPost("/workflow/activity/getzcAjzt", null, function (res) {
            if (res.code === 0) {
                let value = res.data; // 接口返回的数据
                let opt = "<option value=''>请选择案件状态</option>"; // 默认选项
                // 遍历接口返回的数据，生成选项
                for (let i in value) {
                    opt += '<option value="' + value[i].swjcayztDm + '">' + value[i].swjcayztmc + '</option>';
                }
                // 将生成的选项插入到 select 元素中
                $("#ajztmc0").html(opt);
                $("#ajztmc1").html(opt);
                // 渲染 layui 的 select 组件
                form.render('select'); // 注意：必须调用渲染方法以更新 select 组件
            } else {
                // 如果接口返回错误
                layer.msg(res.msg, {icon: 2}); // 提示错误信息
                return false;
            }
        });
        //待调整检查科室表格
        grdbTableIns = table.render({
            elem: '#grdbShowTable',
            contentType: 'application/json',
            headers: {
                "authorization": token
            },
            page: true,    // 开启分页
            url: '/workflow/inspect/queryZcayxx',//数据接口
            method: 'POST',
            where: {
                zcrylx: "0"
            },
            parseData: function (res) { //将原始数据解析成 table 组件所规定的数据
                return {
                    "code": res.code, //解析接口状态
                    "msg": res.msg, //解析提示文本
                    "count": CoreUtil.isEmpty(res.data) ? 0 : res.data.total, //解析数据长度
                    "data": CoreUtil.isEmpty(res.data) ? null
                        : CoreUtil.paramsDecrypt(res.data.records)
                }
            },
            cols: [[
                {align: 'center', width: 230, field: 'jcajxxuuid', title: '检查UUID', sort: true, hide: true},
                {align: 'center', width: 180, field: 'jcaybh', title: '检查案件编号', sort: true},
                {align: 'center', width: 180, field: 'nsrsbh', title: '纳税人识别号', sort: true},
                {align: 'center', width: 200, field: 'nsrmc', title: '纳税人名称', sort: true},
                {align: 'center', width: 280, field: 'jsks', title: '金三科室', sort: true},
                {align: 'center', width: 280, field: 'tzhks', title: '调整后科室', sort: true},
                {align: 'center', width: 150, field: 'swjcayztmc', title: '案件状态', sort: true},
                {
                    align: 'center', width: 150, field: 'lrrq', title: '立案时间', sort: true, templet: function (d) {
                        // 格式化日期为 'yyyy-MM-dd'
                        return layui.util.toDateString(d.lrrq, 'yyyy-MM-dd');
                    }
                },
                {align: 'center', width: 200, field: 'swryxm', title: '实际检查人', sort: true},
                {fixed: 'right', align: 'center', width: 75, toolbar: "#grdbTool", title: '操作'}
            ]],
            toolbar: '#grdbToolbar'
        });
        //已调整检查科室表格
        grybTableIns = table.render({
            elem: '#grybShowTable',
            contentType: 'application/json',
            headers: {
                "authorization": token
            },
            page: true,    // 开启分页
            url: '/workflow/inspect/queryZcayxx',//数据接口
            method: 'POST',
            where: {
                zcrylx: "1"
            },
            parseData: function (res) { //将原始数据解析成 table 组件所规定的数据
                return {
                    "code": res.code, //解析接口状态
                    "msg": res.msg, //解析提示文本
                    "count": CoreUtil.isEmpty(res.data) ? 0 : res.data.total, //解析数据长度
                    "data": CoreUtil.isEmpty(res.data) ? null
                        : CoreUtil.paramsDecrypt(res.data.records)
                }
            },
            cols: [[
                {align: 'center', width: 230, field: 'jcajxxuuid', title: '检查UUID', sort: true, hide: true},
                {align: 'center', width: 180, field: 'jcaybh', title: '检查案件编号', sort: true},
                {align: 'center', width: 180, field: 'nsrsbh', title: '纳税人识别号', sort: true},
                {align: 'center', width: 200, field: 'nsrmc', title: '纳税人名称', sort: true},
                {align: 'center', width: 280, field: 'jsks', title: '金三科室', sort: true},
                {align: 'center', width: 280, field: 'tzhks', title: '调整后科室', sort: true},
                {align: 'center', width: 150, field: 'swjcayztmc', title: '案件状态', sort: true},
                {
                    align: 'center', width: 150, field: 'lrrq', title: '立案时间', sort: true, templet: function (d) {
                        // 格式化日期为 'yyyy-MM-dd'
                        return layui.util.toDateString(d.lrrq, 'yyyy-MM-dd');
                    }
                },
                {align: 'center', width: 500, field: 'swryxm', title: '实际检查人', sort: true},
                {fixed: 'right', align: 'center', width: 75, toolbar: "#grdbTool", title: '操作'}
            ]],
            toolbar: '#grdbToolbar'
        });
        //调整-检查人
        table.on('tool(grdbShowTable)', function (obj) {
            openAdjustTaxOrgModal(obj);
        });
        table.on('tool(grybShowTable)', function (obj) {
            openAdjustTaxOrgModal(obj);
        });

        function openAdjustTaxOrgModal(obj) {
            CoreUtil.sendPost("/workflow/activity/querySelectJcr", obj.data.ayszjgDm, function (res) {
                if (res.code === 0) {
                    let value = res.data;
                    let dataList = [];
                    // 转换数据格式
                    for (let i in value) {
                        dataList.push({
                            name: value[i].swryxm,  // 显示的名称
                            value: value[i].swryxm  // 选项的值
                        });
                    }

                    // 使用 xm-select 渲染下拉框
                    zcrSelect = xmSelect.render({
                        el: '#zcrSelect',  // 绑定的容器
                        filterable: true, // 开启搜索功能
                        theme: {
                            color: '#009688', // 自定义主题色
                        },
                        tips: '请选择协查人', // 提示文本
                        data: dataList, // 动态填充选项数据
                    });
                    // 使用 xm-select 渲染下拉框
                    xcrSelect = xmSelect.render({
                        el: '#xcrSelect',  // 绑定的容器
                        filterable: true, // 开启搜索功能
                        theme: {
                            color: '#009688', // 自定义主题色
                        },
                        tips: '请选择协查人', // 提示文本
                        data: dataList, // 动态填充选项数据
                    });
                } else {
                    layer.msg(res.msg);
                    return false;
                }
            });
            // 弹窗逻辑
            layer.open({
                type: 1,
                offset: '50px',
                skin: 'layui-layer-molv',
                title: "调整检察人员",
                area: ['700px', '420px'],
                shade: 0,
                maxmin: true,
                shadeClose: false,
                content: jQuery("#debugtaxorgDiv"),
                btn: ['调整检查人员', '取消'],
                yes: function (index) {
                    // 设置协查人多选下拉框的默认选中的值
                    obj.data.selectedValue = zcrSelect.getValue().map(item => item.value);
                    // 获取协查人下拉框中所有选中的值
                    obj.data.xcSelectedValue = xcrSelect.getValue().map(item => item.value);
                    // 调用保存接口
                    CoreUtil.sendPost("/workflow/activity/saveZcjcr", obj.data, function (res) {
                        if (res.code === 0) {
                            layer.msg("调整检查人员成功！");
                            searchWtzlary(); // 重新加载数据
                            searchYtzlary(); // 重新加载数据
                        } else {
                            layer.msg(res.msg);
                        }
                    });
                    layer.close(index); // 关闭弹窗
                },
                // 在弹窗打开时设置协查人的默认值
                // success: function () {
                //     // 设置协查人多选下拉框的默认选中的值
                //     zcrSelect.setValue((zcrSelect.getValue() || []).map(item => ({ name: "", value: item.value })));
                //     xcrSelect.setValue((xcrSelect.getValue() || []).map(item => ({ name: "", value: item.value })));
                // }
            });
        }

        //立案时间起
        laydate.render({
            elem: '#startTime0'
            , type: 'date'
            , value: null
            , done: function (value) {
                if (value !== null && value !== undefined && value !== "") {
                    startTime = value;
                } else {
                    startTime = null;
                }
            }
        });
        //立案时间止
        laydate.render({
            elem: '#endTime0'
            , type: 'date'
            , value: null
            , done: function (value) {
                if (value !== null && value !== undefined && value !== "") {
                    endTime = value;
                } else {
                    endTime = null;
                }
            }
        });
        //立案时间起
        laydate.render({
            elem: '#startTime1'
            , type: 'date'
            , value: null
            , done: function (value) {
                if (value !== null && value !== undefined && value !== "") {
                    startTime = value;
                } else {
                    startTime = null;
                }
            }
        });
        //立案时间止
        laydate.render({
            elem: '#endTime1'
            , type: 'date'
            , value: null
            , done: function (value) {
                if (value !== null && value !== undefined && value !== "") {
                    endTime = value;
                } else {
                    endTime = null;
                }
            }
        });
        // 监听重置按钮
        document.getElementById('resetBtn0').addEventListener('click', function () {
            document.getElementById('searchForm0').reset(); // 原生重置表单
            form.render(); // 重新渲染 Layui 的动态组件
        });
        // 监听重置按钮
        document.getElementById('resetBtn1').addEventListener('click', function () {
            document.getElementById('searchForm1').reset(); // 原生重置表单
            form.render(); // 重新渲染 Layui 的动态组件
        });

        // 未调整点击导出按钮
        $("#exportBtn0").click(function () {
            layer.confirm('确定导出所有数据?', {icon: 3, title: '提示'}, function (index) {
                const mapArr = {
                    jcajbh: $("#jcajbh0").val(),
                    nsrmc: $("#nsrmc0").val(),
                    nsrsbh: $("#nsrsbh0").val(),
                    tzhks: $("#tzhks0").val(),
                    swjcayztDm: $("#ajztmc0").val(),
                    lasjq: $("#startTime0").val(),
                    lasjz: $("#endTime0").val(),
                    zcrylx: "0"
                };
                console.log("ExportBtn:", mapArr); // 调试日志
                CoreUtil.sendPost("/workflow/inspect/exportZcayxx", mapArr, function (res) {
                    if (res.code === 0) {
                        const data = res.data;
                        if (!CoreUtil.isEmpty(data)) {
                            //全部导出
                            table.exportFile(grdbTableIns.config.id, data, 'xls');
                            //导出时阻止页面刷新
                            $(".layui-form").submit(function (e) {
                                e.preventDefault();
                            })
                        } else {
                            layer.alert('未查询到需要导出的数据！', {icon: 2});
                        }
                    }
                });
                layer.close(index);
            });
        });

        // 已调整点击导出按钮
        $("#exportBtn1").click(function () {
            layer.confirm('确定导出所有数据?', {icon: 3, title: '提示'}, function (index) {
                const mapArr = {
                    jcaybh: $("#jcajbh1").val(),
                    nsrmc: $("#nsrmc1").val(),
                    nsrsbh: $("#nsrsbh1").val(),
                    tzhks: $("#tzhks1").val(),
                    swjcayztDm: $("#ajztmc1").val(),
                    lasjq: $("#startTime1").val(),
                    lasjz: $("#endTime1").val(),
                    zcrylx: "1",
                };
                console.log("ExportBtn1:", mapArr); // 调试日志
                CoreUtil.sendPost("/workflow/inspect/exportZcayxx", mapArr, function (res1) {
                    if (res1.code === 0) {
                        const data = res1.data;
                        if (!CoreUtil.isEmpty(data)) {
                            //全部导出
                            table.exportFile(grybTableIns.config.id, data, 'xls');
                            //导出时阻止页面刷新
                            $(".layui-form").submit(function (e) {
                                e.preventDefault();
                            })
                        } else {
                            layer.alert('未查询到需要导出的数据！', {icon: 2});
                        }
                    }
                });
                layer.close(index);
            });
        });
    });

    //待调整检查科室查询
    function searchWtzlary() {
        const lasjqValue = $("#startTime0").val();
        const lasjzValue = $("#endTime0").val();
        if (!lasjqValue && lasjzValue) {
            layer.msg('请输入立案时间起', {icon: 5, time: 1500});
            return;
        } else if (lasjqValue && !lasjzValue) {
            layer.msg('请输入立案时间止', {icon: 5, time: 1500});
            return;
        } else if (lasjqValue > lasjzValue) {
            layer.msg('立案时间起不能大于立案时间止', {icon: 5, time: 1500});
            return;
        }
        //这里以搜索为例
        grdbTableIns.reload({
            where: { //设定异步数据接口的额外参数，任意设
                jcaybh: $("#jcaybh0").val(),
                ajmc: $("#ajmc0").val(),
                nsrmc: $("#nsrmc0").val(),
                nsrsbh: $("#nsrsbh0").val(),
                tzhks: $("#tzhks0").val(),
                swjcayztDm: $("#ajztmc0").val(),
                jcayyjqxDm: "0",
                lasjq: lasjqValue,
                lasjz: lasjzValue
            }
            , page: {
                curr: 1 //重新从第 1 页开始
            }
        });
    }

    //已调整检查科室查询
    function searchYtzlary() {
        const lasjqValue = $("#startTime1").val();
        const lasjzValue = $("#endTime1").val();
        if (!lasjqValue && lasjzValue) {
            layer.msg('请输入立案时间起', {icon: 5, time: 1500});
            return;
        } else if (lasjqValue && !lasjzValue) {
            layer.msg('请输入立案时间止', {icon: 5, time: 1500});
            return;
        } else if (lasjqValue > lasjzValue) {
            layer.msg('立案时间起不能大于立案时间止', {icon: 5, time: 1500});
            return;
        }
        //这里以搜索为例
        grybTableIns.reload({
            where: { //设定异步数据接口的额外参数，任意设
                jcaybh: $("#jcajbh1").val(),
                ajmc: $("#ajmc1").val(),
                nsrmc: $("#nsrmc1").val(),
                nsrsbh: $("#nsrsbh1").val(),
                jsks: $("#jsks1").val(),
                jcayyjqxDm: "1",
                tzhks: $("#tzhks1").val(),
                swjcayztDm: $("#ajztmc1").val(),
                lasjq: lasjqValue,
                lasjz: lasjzValue
            }
            , page: {
                curr: 1 //重新从第 1 页开始
            }
        });
    }

</script>

</body>
</html>